﻿using Newtonsoft.Json;



namespace Onetube.Entities.CommentsQuery
{
    public class Id
    {
        [JsonProperty("$t")]
        public string id { get; set; }
    }

    public class Updated
    {
        [JsonProperty("$t")]
        public string Upated { get; set; }
    }

    public class Category
    {
        [JsonProperty("scheme")]
        public string Scheme { get; set; }

        [JsonProperty("term")]
        public string Term { get; set; }
    }

    public class Logo
    {
        [JsonProperty("$t")]
        public string logo { get; set; }
    }

    public class Link
    {
        [JsonProperty("rel")]
        public string Rel { get; set; }

        [JsonProperty("type")]
        public string Type { get; set; }

        [JsonProperty("href")]
        public string Href { get; set; }
    }

    public class Name
    {
        [JsonProperty("$t")]
        public string name { get; set; }
    }

    public class Uri
    {
        [JsonProperty("$t")]
        public string uri { get; set; }
    }

    public class Author
    {
        [JsonProperty("name")]
        public Name Name { get; set; }

        [JsonProperty("uri")]
        public Uri Uri { get; set; }
    }

    public class Generator
    {
        [JsonProperty("$t")]
        public string T { get; set; }

        [JsonProperty("version")]
        public string Version { get; set; }

        [JsonProperty("uri")]
        public string Uri { get; set; }
    }

    public class OpenSearchTotalResults
    {
        [JsonProperty("$t")]
        public int TotalResults { get; set; }
    }

    public class OpenSearchItemsPerPage
    {
        [JsonProperty("$t")]
        public int ItemsPerPage { get; set; }
    }

    public class Id2
    {
        [JsonProperty("$t")]
        public string T { get; set; }
    }

    public class Published
    {
        [JsonProperty("$t")]
        public string published { get; set; }
    }

    public class Updated2
    {
        [JsonProperty("$t")]
        public string T { get; set; }
    }

    public class Category2
    {
        [JsonProperty("scheme")]
        public string Scheme { get; set; }

        [JsonProperty("term")]
        public string Term { get; set; }
    }

    public class Title
    {
        [JsonProperty("$t")]
        public string title { get; set; }

        [JsonProperty("type")]
        public string Type { get; set; }
    }

    public class Content
    {
        [JsonProperty("$t")]
        public string content { get; set; }

        [JsonProperty("type")]
        public string Type { get; set; }
    }

    public class Link2
    {
        [JsonProperty("rel")]
        public string Rel { get; set; }

        [JsonProperty("type")]
        public string Type { get; set; }

        [JsonProperty("href")]
        public string Href { get; set; }
    }

    public class Name2
    {
        [JsonProperty("$t")]
        public string Name { get; set; }
    }

    public class Uri2
    {
        [JsonProperty("$t")]
        public string T { get; set; }
    }

    public class Author2
    {
        [JsonProperty("name")]
        public Name2 Name { get; set; }

        [JsonProperty("uri")]
        public Uri2 Uri { get; set; }
    }

    public class YtChannelId
    {
        [JsonProperty("$t")]
        public string ChannelId { get; set; }
    }

    public class YtGooglePlusUserId
    {
        [JsonProperty("$t")]
        public string GooglePlusUserId { get; set; }
    }

    public class YtReplyCount
    {
        [JsonProperty("$t")]
        public int ReplyCount { get; set; }
    }

    public class YtVideoid
    {
        [JsonProperty("$t")]
        public string VideoId { get; set; }
    }

    public class Entry
    {
        [JsonProperty("id")]
        public Id2 Id { get; set; }

        [JsonProperty("published")]
        public Published Published { get; set; }

        [JsonProperty("updated")]
        public Updated2 Updated { get; set; }

        [JsonProperty("category")]
        public Category2[] Category { get; set; }

        [JsonProperty("title")]
        public Title Title { get; set; }

        [JsonProperty("content")]
        public Content Content { get; set; }

        [JsonProperty("link")]
        public Link2[] Link { get; set; }

        [JsonProperty("author")]
        public Author2[] Author { get; set; }

        [JsonProperty("yt$channelId")]
        public YtChannelId YtChannelId { get; set; }

        [JsonProperty("yt$googlePlusUserId")]
        public YtGooglePlusUserId YtGooglePlusUserId { get; set; }

        [JsonProperty("yt$replyCount")]
        public YtReplyCount YtReplyCount { get; set; }

        [JsonProperty("yt$videoid")]
        public YtVideoid YtVideoid { get; set; }
    }

    public class Feed
    {
        [JsonProperty("xmlns")]
        public string Xmlns { get; set; }

        [JsonProperty("xmlns$openSearch")]
        public string XmlnsOpenSearch { get; set; }

        [JsonProperty("xmlns$yt")]
        public string XmlnsYt { get; set; }

        [JsonProperty("id")]
        public Id Id { get; set; }

        [JsonProperty("updated")]
        public Updated Updated { get; set; }

        [JsonProperty("category")]
        public Category[] Category { get; set; }

        [JsonProperty("logo")]
        public Logo Logo { get; set; }

        [JsonProperty("link")]
        public Link[] Link { get; set; }

        [JsonProperty("author")]
        public Author[] Author { get; set; }

        [JsonProperty("generator")]
        public Generator Generator { get; set; }

        [JsonProperty("openSearch$totalResults")]
        public OpenSearchTotalResults OpenSearchTotalResults { get; set; }

        [JsonProperty("openSearch$itemsPerPage")]
        public OpenSearchItemsPerPage OpenSearchItemsPerPage { get; set; }

        [JsonProperty("entry")]
        public Entry[] Entry { get; set; }
    }
    public class CommentsQueryResult
    {
        [JsonProperty("version")]
        public string Version { get; set; }

        [JsonProperty("encoding")]
        public string Encoding { get; set; }

        [JsonProperty("feed")]
        public Feed Feed { get; set; }
    }
}